Layout optimization is performed by analyzing the design at the optimizer. The analyzer may determine rules violations and change the design to try to improve the yield. For example, additional vias may be added to minimize the effects of random via failures. To avoid the belt buckle issue, the spacing is increased. Dummy fill is added to reduce chemical mechanical planarization (CMP) induced dishing and make the surface more planar. However, the changes are determined by the optimizer using design rules and past experience. Therefore, the yield is improved only based on the design rules at the optimizer.